PROTOTYPE Platform console Storefront Admin console Partner portal Staff app Mobile app Changes save live and appear on the storefront and partner portal
Loading console…
🔒
Team sign-in required
The admin console is only available to {{ brandName }} team members.
Sign in
View storefront ↗ {{ alertCount }}
{{ me.i }}{{ me.name }}{{ me.role }}
{{ me.name }}
{{ me.email }}
{{ me.role }} · {{ me.note }}
Switch company Sign out
You don’t have access to this area
Your role is {{ me.role }} ({{ me.note }}). Ask an Owner to change your role in Settings → Team.
Back to dashboard
Thursday, 5 November 2026

Good morning, {{ me.first }}

{{ k.label }}
{{ k.value }}
{{ k.delta }}

Revenue by channel · 30 days

Direct API partners
7 Oct21 OctToday

Needs attention

{{ a.t }}
{{ a.d }}
All clear. Nothing waiting on you.

Latest bookings

All bookings →
{{ b.ref }}
{{ b.product }}
{{ b.customer }}
{{ b.channelName }} {{ b.totalLabel }} {{ b.status }}

Top experiences

{{ p.rank }}
{{ p.title }}
{{ p.booked }}
Storefront / Homepage

Storefront builder

Auto-saved · live
Open storefront ↗
Announcement bar
Pinned to top
SECTIONS{{ activeCount }} active
{{ r.name }}
{{ r.typeLabel }} · {{ r.state }}
▲ ▼
Announcement bar
{{ annState }}
EDITING{{ o.l }}{{ bLangNote }}
Background
{{ sec.name }}
{{ sec.typeLabel }} section
{{ sec.state }} Duplicate Delete
EDITING{{ o.l }}{{ bLangNote }}
Drop hero image or video2400×1200 · MP4/JPG
Cards to show
{{ c.l }}
Tabs pull from active experiences: Trending (most booked), Top rated, New arrivals, Deals (has old price). Mark products as Featured in Experiences to pin them first.
Category
{{ c.l }}
Cards to show
{{ c.l }}
Flash deal pricing is {{ flashState }}
Max discount shown
{{ c.l }}
Products appear here when they have an "old price" set in Experiences.
Colour
✕
+ Add question
{{ sec.itemsTitle }}
+ Add
{{ it.n }} ▲ ✕
{{ it.pickLabel }}{{ pk.l }}
{{ it.note }}
{{ sec.managedNote }} Open →
Live previewClick to edit
{{ b.label }}
Storefront / Settings

Branding & theme

Colour palette

{{ p.name }}
Logo (SVG/PNG)light & dark versions
Favicon & app icon512×512
Heading font
{{ c.l }}
Corner style
{{ c.l }}
Languages
{{ c.l }}
Currencies
{{ c.l }}
Preview
{{ ann.text }}
{{ brand.name }}Sign in
{{ hero.title }}
Dubai · 12 DecSearch
Golden Dunes Safari
from $79
Marina Dhow Cruise
from $65
Catalog

Experiences {{ pCount }}

{{ o.l }}
{{ o.l }}
{{ o.l }}
ExperienceCategoryPriceFeaturedPartnersActiveBooked
{{ r.title }}
{{ r.locLabel }} · {{ r.ttCount }} ticket types · {{ r.mediaCount }} media
{{ r.cat }} {{ r.priceLabel }} ★ {{ r.booked }} Edit
No experiences match these filters.
Experiences / {{ ep.cat }}

{{ ep.title }}

{{ ep.stLabel }}{{ ep.id }}{{ ep.distLabel }}
Active View live ↗ Delete
{{ t.l }}
City · {{ ep.fullLoc }}Manage locations →
{{ c.l }} {{ c.co }}
"From" price on storefront
{{ ep.fromLabel }}Edit ticket types →
Category
{{ c.l }}
Featured — pinned first in "Travellers are booking" on the homepage

Gallery

{{ mediaSummary }}
▶{{ m.durLabel }}
COVER {{ m.n }}
{{ m.qlabel }}{{ m.meta }}
←→Set cover✕
Upload guidelines
{{ g.title }}
{{ l.k }}{{ l.v }}
Images are cropped to 4:3 on cards and the main gallery tile; videos play at 16:9. Keep the subject centred. Uploads below the minimum are accepted but flagged.
Add video by link
Add video
Add image by URL
Add image
The cover image is used on storefront cards, the hero gallery and the partner catalogue. Media order = gallery order. Partners receive these URLs in the catalogue API.

Time slots

+ Add slot
StartLabelCapacitySurchargeOn
✕

Runs on

{{ w.l }}

Blackout dates

{{ b.d }} ✕
Add

Booking cut-off

{{ c.l }}

Ticket types

{{ ttSummary }}+ Add ticket type

Each type has its own price and per-booking limits. Shown on the storefront, in partner booking and the API. The lowest active price becomes the "from" price.

Quick add:+ {{ t.l }}
NameDescription / agePrice $MinMaxOnAPI
▲▼✕
No ticket types — this experience can't be booked until you add one.

Dynamic pricing rules

{{ r.n }}
{{ r.d }}
{{ r.v }}

Add-ons offered with this experience

{{ linkSummary }}

Only these appear on this experience's page, at checkout and in the partner API. Price overrides apply to this experience only.

Add-onTypeOffered asPrice hereAPI
{{ l.name }}
{{ l.sub }}
{{ l.kind }}
{{ m.l }}
Included ✕
No add-ons on this experience yet. Pick from the catalogue or create one.
Add from catalogue
{{ x.kind }}{{ x.name }}{{ x.priceLabel }}+
Every catalogue add-on is already linked.
Create a new add-on here
{{ m.l }}
{{ m.l }}
Create & link
Also saved to the shared catalogue so you can reuse it on other experiences.

Who can sell this?

Controls the partner API catalogue and Partner Portal.

{{ o.l }}

Partner price

Applied per partner tier unless overridden below.

{{ o.l }}
{{ modelHint }}
Direct only. This experience is hidden from every partner's catalogue and API.
Add-ons sold through the API with this experience: {{ apiAddonNames }}Manage in Add-ons tab →
{{ t.name }}
{{ t.value }}
Adult net {{ t.net }}

Per-partner access

{{ allowedCount }}
OnPartnerTierNet adultAllotment / slot
{{ r.name }}
{{ r.statusNote }}
{{ r.tier }} {{ r.net }}
Catalog

Locations

{{ locSummary }}

Countries

Add
{{ r.id }} {{ r.cities }} cities · {{ r.exps }} exp. ✕

Cities {{ ciFilterLabel }}

{{ ciClearLabel }}
Add city
in{{ o.l }}
{{ r.country }} {{ r.exps }} experiences {{ r.state }} {{ r.delLabel }}
Inactive cities or countries hide their experiences from the storefront and partner catalogue without deleting anything.
Catalog

Categories

{{ r.live }} live · {{ r.count }} listed ▲ ▼ {{ r.state }} {{ r.delLabel }}
Catalog

Add-ons

{{ o.l }}
Add-onTypePriceChargedUsed inPartnersActive
{{ r.kind }} {{ r.unit }} {{ r.usedIn }} ✕
Storefront

Promotions

Flash deals
{{ flashCount }} experiences with a was-price · countdown resets daily
{{ c.l }}
Announcement bar
{{ annCard.text }}
Edit in builder
CodeDiscountApplies toUsageExpiresActive
{{ r.code }} {{ r.disc }} {{ r.scope }}
{{ r.usage }}
{{ r.expires }} ✕
Sales

Bookings

Export CSV
{{ k.l }}
{{ k.n }}
{{ o.l }}
{{ bkShown }}
RefCreatedExperience · visitCustomerChannelPaxTotalStatus
{{ b.ref }} {{ b.created }}
{{ b.product }}
{{ b.date }} · {{ b.slot }}
{{ b.customer }}
{{ b.email }}
{{ b.channelName }} {{ b.pax }} {{ b.totalLabel }} {{ b.status }}
No bookings match.
Sales

Availability

←{{ wkLabel }}→
{{ o.l }}
{{ d.dow }}
{{ d.n }}
{{ d.note }}
{{ r.t }}
{{ r.lab }}
{{ c.label }}
Open Over 80% full Closed / stop-sell Click a cell to close a slot · click a day to stop-sell the whole day
Sales

Customers {{ custCount }}

CustomerEmailBookingsLifetime valueBooked via
{{ c.i }}{{ c.name }}
{{ c.email }} {{ c.n }} {{ c.spent }} {{ c.via }} Bookings →
Sales

Reviews

{{ o.l }}
Auto-publish verified 4★+
{{ r.i }}
{{ r.name }}
{{ r.product }} · {{ r.date }}
{{ r.stars }}
{{ r.text }}
Your reply: {{ r.reply }}
Reply
Publish Hide Delete
Nothing here.
Distribution

API partners

Open partner portal ↗
{{ k.l }}
{{ k.v }}
{{ o.l }}
PartnerTierStatusWalletCredit lineKeys30d sales
{{ r.i }}
{{ r.name }}
{{ r.id }}
{{ r.tier }} {{ r.status }} {{ r.creditLabel }} {{ r.limitLabel }} {{ r.keyCount }} {{ r.salesLabel }} Manage
Insights

Reports

{{ o.l }}
Export PDF
{{ k.l }}
{{ k.v }}
{{ k.d }}

Revenue by channel

{{ c.name }}{{ c.v }}

Storefront funnel

{{ f.l }}
{{ f.v }}
{{ f.rate }}

Experience performance

ExperienceTicketsRevenueRating
{{ p.title }}{{ p.t }}{{ p.rev }}★ {{ p.rating }}

Add-on revenue

{{ a.name }}{{ a.n }} sold{{ a.rev }}
Workspace

Settings

{{ t.l }}
Default free-cancellation window
{{ c.l }}
{{ r.i }}
{{ r.l }}
{{ r.d }}
{{ r.state }}
Checkout preview · $100 ticket
Ticket$100.00
VAT {{ vat }}%{{ vatAmt }}
Booking fee{{ feeAmt }}
Customer pays{{ taxTotal }}
{{ r.l }}
{{ r.d }}
{{ c.l }}
Invite
{{ u.i }}
{{ u.name }}
{{ u.email }} · last active {{ u.last }}
{{ u.status }}{{ u.role }} ▾{{ u.removeLabel }}

Cookie consent

Show consent banner
Required for {{ pv.regions }} visitors · "Reject" is as easy as "Accept"
{{ x.v }}
{{ x.l }}

Card payments

PCI DSS SAQ-A
Card numbers are typed into the payment provider's secure field and never reach your servers. You only store a token and the last 4 digits.
Provider
{{ o.l }}
Mode
{{ o.l }}
{{ x.l }}
{{ x.d }}

Data subject requests

+ Export+ Delete
{{ r.id }}{{ r.type }}{{ r.email }}{{ r.date }} · {{ r.found }}{{ r.status }}{{ r.runLabel }}
{{ a.t }}
{{ a.who }} · {{ a.d }}
Default rate limit (requests / min)
{{ c.l }}
Booking hold length
{{ c.l }}
OCTO v1 base URL https://api.{{ brandDomain }}/octo · capabilities octo/pricing, octo/content + x-addons extension · sandbox keys create isolated test bookings ({{ sandboxCount }} so far) · holds expire after the booking hold length above.
← Bookings/{{ bk.ref }}
{{ bk.ref }}{{ bk.status }}Booked {{ bk.created }} · {{ bk.channelName }}

{{ bk.product }}

{{ bk.dateLabel }} · {{ bk.slot }} · {{ bk.fullLoc }}
{{ a.l }}
{{ x.k }}
{{ x.v }}
{{ x.d }}

Order

{{ l.kind }}{{ l.label }}{{ l.value }}
Total charged{{ bk.totalLabel }}
Paid from partner wallet (net) · tier {{ bk.tier }}{{ bk.totalLabel }}

Lead traveller

{{ bk.initial }}
{{ bk.customer }}
{{ bk.custStats }}
Customer profile →
{{ x.k }}
{{ x.v }}

Internal notes

Add
{{ n.t }}
{{ n.d }}
No notes yet.
SOLD BY API PARTNER
{{ bk.channelName }}
{{ bk.partnerLine }}
Open partner →

Reschedule

{{ o.l }}
Move booking

Activity

{{ t.t }}
{{ t.d }}
← API partners/{{ pt.name }}
{{ pt.i }}

{{ pt.name }}

{{ pt.id }}{{ pt.tier }}{{ pt.status }}{{ pt.kind }} · {{ pt.country }} · {{ pt.email }}
{{ pt.tgLabel }} View as partner ↗
{{ x.k }}
{{ x.v }}
{{ t.l }}

Account

Pricing tier
{{ t.l }}
{{ pt.tierNote }}

Credit settings

Bookings are allowed while wallet + credit line ≥ booking net. Below the alert the partner is emailed.

Contract

{{ fin.cstatus }}
PDF
{{ fin.doc }}
{{ fin.signedBy }}
Payment terms
{{ t.l }}
{{ fin.termsNote }}
Renew 12 monthsSend for e-signature

Credit line requests

+ {{ r.amountL }}{{ r.status }}
{{ r.reason }}
{{ r.meta }}
ApproveDecline
No requests. Partners request increases from their wallet page.

Monthly statements

{{ fin.genLabel }}
StatementPeriodBookingsGross retailRefundsNet dueStatus
{{ t.id }}{{ t.period }}{{ t.bookings }}{{ t.grossL }}{{ t.refundsL }}{{ t.netL }}{{ t.status }}PDFMark paid
MANUAL ADJUSTMENT
+ Credit− Debit

Ledger

DateRefDescriptionTypeAmount
{{ l.date }}{{ l.ref }}{{ l.desc }}{{ l.type }}{{ l.amt }}
RefExperience · visitCustomerPaxNetStatus
{{ b.ref }}
{{ b.product }}
{{ b.date }} · {{ b.slot }}
{{ b.customer }}{{ b.pax }}{{ b.totalLabel }}{{ b.status }}
No bookings from this partner yet.
{{ r.title }}
{{ r.note }}
net {{ r.net }}Rules →

API keys

{{ k.env }}
{{ k.name }}
{{ k.masked }} · created {{ k.created }} · last used {{ k.last }}
{{ k.action }}
No keys yet — the partner creates them in their portal.

Webhooks

{{ h.url }}
{{ h.events }} · {{ h.status }}
Recent deliveries
{{ d.code }}{{ d.ev }}{{ d.t }}
← Customers/{{ cu.name }}
{{ cu.i }}

{{ cu.name }}

{{ cu.email }} · {{ cu.phone }}
{{ cu.segment }}
{{ x.k }}
{{ x.v }}
RefExperience · visitChannelTotalStatus
{{ b.ref }}
{{ b.product }}
{{ b.date }} · {{ b.slot }}
{{ b.channelName }}{{ b.totalLabel }}{{ b.status }}
Storefront

Messages

Open Staff app ↗
{{ t.ch }}{{ t.name }}

{{ tpl.name }}

{{ tpl.ch }}
INSERT VARIABLE
{{ v.l }}
{{ tpl.charNote }}
Previewwith {{ tplSample }}
From {{ brandName }} · to {{ tpl.to }}
{{ tpl.pvSubject }}
{{ tpl.pvBody }}
{{ tpl.pvBody }}
09:41
Send test to me
Add a section
{{ x.name }}
{{ x.d }}
New experience
City
{{ c.l }}
Category
{{ c.l }}
CancelCreate & edit
New add-on
Type
{{ c.l }}
Charged
{{ c.l }}
CancelCreate add-on
New coupon
Discount type
{{ c.l }}
{{ formErr }}
CancelCreate coupon
Manual booking
Experience
{{ c.l }}
Total: {{ fTotal }}
CancelCreate booking
Add API partner
Tier
{{ c.l }}
A merchant ID and sandbox key are generated now. The live key is created once the partner signs the agreement in their portal.
CancelCreate partner
{{ playerEl }} ✕
{{ toastMsg }}